#include "BCP.h"

BCP::BCP()
{
}

BCP::~BCP()
{
}

void BCP::setCodigo(int num){
     this->mCodigo = num;
}

int BCP::getCodigo(){
    return this->mCodigo;
}

void BCP::inserirTarefas(char par_tipo, int par_tempo){
     tarefa aux;
     aux.tipo = par_tipo;
     aux.tempoQFalta = par_tempo;
     this->mTarefas.push(aux);
}
void BCP::getTarefaAtual(char * res_tipo, int * res_tempo){
     tarefa aux;
     aux = this->mTarefas.front();
     *res_tipo = aux.tipo;
     *res_tempo = aux.tempoQFalta;
}

void BCP::setTarefaAtual( int par_tempo ){
     this->mTarefas.front().tempoQFalta = par_tempo;
}
void BCP::proximaTarefa(){
     this->mTarefas.pop();
}

bool BCP::fimDoProcesso(){
     if (this->mTarefas.size()==0) return true;
     return false;
}

void BCP::setUsandoDispositivo(char par_disp){
     this->mUsandoDispositivo = par_disp;
}

char BCP::getUsandoDispositivo(){
     return this->mUsandoDispositivo;
}

void
BCP::setClockQueSai( int vClock )
{
	this->mTarefas.front().clockQueSai = vClock;
}

int
BCP::getClockQueSai()
{
	return this->mTarefas.front().clockQueSai;
}

void
BCP::imprimeTarefa()
{
	char
	c;
	
	int
	i;
	
	this->getTarefaAtual(&c, &i);
	
	std::cout << "\tDispositivo: ";
	if(c == '0')
	{
		std::cout << "CPU";
	}
	else
	{
		std::cout << "IO " << c;
	}
	std::cout << std::endl;
	std::cout << "\tTempo q falta para finalizar: " << i << std::endl;	
}

void
BCP::setPrioridade( int vPrioridade )
{
	this->mPrioridade = vPrioridade;
}

int
BCP::getPrioridade()
{
	return this->mPrioridade;
}
